//树形数据

let tree = [
    {
        id: 1,
        title: "主页",
        chilren: [
            {
                id: 3,
                pid: 1,
                title: "欢迎",
                chilren: [
                    {
                        id: 5,
                        pid: 3,
                        title: "欢迎王亚男"
                    },
                    {
                        id: 6,
                        pid: 3,
                        title: "欢迎赵伟"
                    }
                ]
            },
            {
                id: 4,
                pid: 1,
                title: "学院管理"
            }
        ]
    },
    {
        id: 2,
        title: "用户中心"
    }
]

//树形转扁平
function repeatTree(data) {
    //存放新数组
    let repeatArr = []

    function recurson(data) {
        data.forEach(item => {
            if (item.chilren) {
                recurson(item.chilren)
            }
            repeatArr.push({
                id: item.id,
                title: item.title,
                pid: item.pid ?? ""
            })
        })
    }

    recurson(data)
    return repeatArr
}

let res = repeatTree(tree)
// console.log(res);

//扁平转树形
function convertTree(repeatArr) {
    let tree = []
    //扁平转树形
    repeatArr.forEach(item => {
        //寻找父节点
        let parent = repeatArr.find(v => item.pid === v.id)
        console.log(parent);
        //如果有父节点
        if (parent) {
            //添加一个children属性，给他赋值
            if (!parent.chilren) {
                parent.chilren = []
            }
            parent.chilren.push(item)
        }else{
            //如果没有父节点，说明就是父元素
            tree.push(item)
        }
    })
    //返回处理好的数据
    return tree
}

let res2 = convertTree(res)

console.log(res2);